This invention relates generally to processing within a computing environment, and more particularly to the programmatic management of processor population.
In a computing system provided with N functionally equivalent computer processing units (PUs), the workload running on the system will often consume less computational power than the N PUs can provide in aggregate. Quantitatively, this may be expressed as, “The system is less than N*100% utilized.” For example, if N=16, full utilization would be 1600%, and a workload that consumes only half of the available capacity would be said to run at 800% utilization.
Multiprocessing-capable operating systems dispatching such workloads often distribute the workloads evenly over the N PUs. Continuing the above example, the dispatcher might run each of the 16 functionally identical PUs at 50% utilization, thereby providing the workload with sufficient power.
In some computing systems, due to the overhead of managing multiple PUs, the processor cache structure of the machine, and the increasing need for operating system locking and mutual exclusion as multiprocessing level increases, such equitable distribution is not always the most efficient way to distribute such a workload. Returning again to the example, it might make more sense for the operating system kernel to run that 800% workload as 10 processors running at 80% utilization, with the remaining six processors idle.